The present disclosure relates generally to information handling systems (IHSs), and more particularly to and endpoint device discovery system in an IHS.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option is an IHS. An IHS generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes. Because technology and information handling needs and requirements may vary between different applications, IHSs may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in IHSs allow for IHSs to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, IHSs may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Many IHSs include the ability to connect endpoint devices to the IHS in order to expand the functionality of the IHS. For example, typical IHSs may include Peripheral Component Interconnect express (PCIe) expansion buses that are either coupled to PCIe endpoint devices embedded on a motherboard or coupled to PCIe connectors that allow PCIe endpoint devices to be connected to the IHS. When a PCIe endpoint device is initially powered on, or a reset of the PCIe endpoint device occurs, the PCIe endpoint device initializes. During PCIe endpoint device initialization, any attempt by software or firmware in the IHS to poll or access the PCIe endpoint device can result in the PCIe endpoint device failing to initialize, the IHS crashing, and/or a variety of other errors known in the art.
Conventionally, this problem is solved by requiring software or firmware in IHS's to wait a minimum time before attempting to poll or access PCIe endpoint devices after power-on or reset. While the current PCIe specification (3.0) requires software or firmware to wait at least 100 milliseconds after power-on or reset before attempting to poll or access PCIe endpoint devices, typically IHSs require their software or firmware to wait 1 second to ensure proper IHS operation. However, many PCIe endpoint devices require much less time to initialize (e.g., on the order of a few milliseconds) than even the minimum time required by the current PCIe specification. Thus, current PCIe endpoint device discovery methods unnecessarily slow down PCIe endpoint discovery and provide a less than optimal user experience.
Accordingly, it would be desirable to provide an improved endpoint device discovery system.